package com.xiong.wuliao.homeweather;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

/**
 * Author : asus.
 * Time : 2017/2/15.
 */
public class XMLParser {
	public Map<String, String> getMap(InputStream is){
		Map<String, String> map = new HashMap<>();
		try {
			// 使用pull解析XML文件
			XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
			// 获取pull解析器
			XmlPullParser parser = factory.newPullParser();
			// 给解析器设置输入流
			parser.setInput(is, "UTF-8");
			// 分别代表：XML文档的开始，结束 标签的开始，结束 内容
			// parser.START_DOCUMENT
			// parser.END_DOCUMENT
			// parser.START_TAG
			// parser.END_TAG
			// parser.TEXT
			int eventType = parser.getEventType();
			while (eventType != XmlPullParser.END_DOCUMENT){
				if (eventType == XmlPullParser.START_TAG){
					// 获取标签的签名
					String name = parser.getName();
					if (name.equals("key")){
						// 获取key标签下的文本，比如成都
						String key = parser.nextText();
						parser.next();
						parser.next();
						// 对应key获取对应的value值，比如北京对应的101010100
						String value = parser.nextText();
						map.put(key, value);
					}
				}
				parser.next();
				eventType = parser.getEventType();
			}
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return map;
	}


}
